#ifndef _TRANSPORT_PROTOCOL_H
#define _TRANSPORT_PROTOCOL_H

#include "head.h"

typedef enum{
    CMD = 0,
    REGISTER = 1,
    LOGIN = 2,
    TRANS = 3,
    ERROR_EXIT//传输错误信号，提示程序退出当前任务
}task_type;

//长度、参数、参数长度根据type确定
typedef struct 
{
    task_type type;
    void *data;
    int length;//数据的长度
}train;

//创建一个train对象
train * train_init();
//回收 train对象的堆内存
void * train_free(train * t);
//接收和发送
void send_t(int fd,task_type type,const void * data);
train * recv_t(int fd);
//传输错误的通知信息
void exit_error(int fd,const void * err);

#endif